/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.assembler.input;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import fr.generali.accueilclient.client.om.IClientRecherche;
import fr.generali.refservcommuns.rce.restitutionpersonne.dossier.dtosearchbyid.DtoSearchById;
import fr.generali.refservcommuns.rce.restitutionpersonne.restitutionpersonnebyidservice.RestitutionPersonneById;
import fr.generali.refservcommuns.rce.searchgenerique.recherchepersonnegeneriqueservice.RechercherPersonnesGenerique;

/**
 * Transforme un {@link String} en un {@link RechercherPersonnesGenerique}
 * 
 * @author selrhazala
 */
@Component("clientRecherche2RestitutionPersonneByIdConverter")
public class ClientRecherche2RestitutionPersonneByIdConverter extends VisibiliteBuilder implements
    Converter<IClientRecherche, RestitutionPersonneById> {

    /**
     * LOGGER
     */
    private static final Logger LOGGER =
                    LoggerFactory.getLogger(ClientRecherche2RestitutionPersonneByIdConverter.class);
    
    /**
     * {@inheritDoc}
     */
    public RestitutionPersonneById convert(IClientRecherche input) {
        LOGGER.info("assemble");
        RestitutionPersonneById request = new RestitutionPersonneById();
        DtoSearchById dtoSearchById = new DtoSearchById();
        dtoSearchById.getIdentifiantPersonne().add(input.getNumeroClient());
        dtoSearchById.getIdentifiantPersonneRce().add(input.getNumeroClient());
        request.setDtoSearchById(dtoSearchById);
        
        // Visibilité
        request.setDtoContexteVisibilite(buildVisibilite(input.getUserInfo(), input.getListeCodeIntermediaire()));
        request.getDtoContexteVisibilite().setIdIam(input.getNumeroContrat());
        
        return request;
    }
}
